package com.tedu.api.thread;

import com.tedu.api.ee.HomeWork;
import org.junit.Test;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**Lambda作业
 * 单元测试：testLambdaHomeWork1
 * 1.线程有两种创建方式：使用Lambda表达式完成   参考“TR”
 * 2.找集合中：ListAPI：单元测试名：testSort  使用Lambda表达式
 * 3.找IO流--File类--FilterAPI：先转换成匿名内部类再转换成Lambda
 *    使用Lambda 表达式完成【5行搞定】
 * 4.找IO流--File类--FilterAPI：先转换成匿名内部类再转换成Lambda
 *    使用Lambda 表达式完成【2行搞定】
 *
 * Lambda   简化   匿名内部类----优化代码：方法省去--->如果不清楚方法名作用 那就完蛋
 *
 */
public class testLambdaHomeWork1 {

    //1.线程有两种创建方式：使用Lambda表达式完成   参考“TR”
    /*public static void main(String[] args) {
        Thread t1=new Thread(()->{for(int i=0;i<1000;i++){
            System.out.println("one楞one楞");
        }} );
        t1.start();

        Runnable r=()->{for (int i=0;i<1000;i++){
            System.out.println("Runnable匿名内部类写法");
        }};
        Thread t2=new Thread(r);
        t2.start();
    }*/

    //作业2 找集合中：ListAPI：单元测试名：testSort  使用Lambda表达式
    @Test
    public void testSort() {
        List<String> list = new ArrayList<>();
        list.add("阿西吧");
        list.add("搜嘎寺内");
        list.add("呦西");
        Comparator<String> com=(String o1,String o2)->{
            return o1.length()-o2.length();
        };
        Collections.sort(list,com);
        System.out.println("按照文字长短进行集合排序："+list);
    //    Collections.sort(list, (((o1, o2) -> o1.length() - o2.length())));//排序：针对数值
    //    System.out.println("排序后集合:" + list);
    }

    //3.找IO流--File类--FilterAPI：先转换成匿名内部类再转换成Lambda
    //   使用Lambda 表达式完成【5行搞定】
        public static void main(String[] args) {
            File file = new File("."+File.separator+"API1");
            //MyFilter my=new MyFilter();  子实现类--转换成匿名内部类
            //FileFilter my = new FileFilter() {
            //    public boolean accept(File pathname) {
            //        String name = pathname.getName();
            //        System.out.println("获取名称是：" + name);
            //        return name.startsWith("s");
            //  }
            //  };
            // FileFilter my=pathname ->{return pathname.getName().startsWith("s");};
            // File[] subs = file.listFiles(pathname ->{return pathname.getName().startsWith("s");});
            // System.out.println("111" + subs);
            // for (int i = 0; i < subs.length; i++) {
            //    System.out.println("过滤文件夹：" + subs[i].getName());
            // }
            //增强for---改成2行
            for (File f:new File("."+File.separator+"API1").listFiles(pathname ->{return pathname.getName().startsWith("s");})){
                System.out.println("所有文件夹名称"+f);
            }
        }
    }



    //4.找IO流--File类--FilterAPI：先转换成匿名内部类再转换成Lambda
    //    使用Lambda 表达式完成【2行搞定】


